Remove an unnecessary warning
authorMatthias Clasen <mclasen@redhat.com>
Fri, 30 Dec 2011 07:01:15 +0000 (02:01 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 30 Dec 2011 07:01:15 +0000 (02:01 -0500)
Don't warn if there's more than one mnemonic label for a widget,
and skip invisible labels.

Bug 665015

gtk/a11y/gtkwidgetaccessible.c

index bf5adb62524ef780fc3a1306e2637342a15cd03f..3f2d142e33a5e996ad9be74776ae5bf107c33af9 100644 (file)
@@ -197,20 +197,21 @@ find_label (GtkWidget *widget)
   GList *labels;
   GtkWidget *label;
   GtkWidget *temp_widget;
+  GList *ptr;
 
   labels = gtk_widget_list_mnemonic_labels (widget);
   label = NULL;
-  if (labels)
+  ptr = labels;
+  while (ptr)
     {
-      if (labels->data)
+      if (ptr->data && gtk_widget_get_visible (GTK_WIDGET (ptr->data)))
         {
-          if (labels->next)
-            g_warning ("Widget (%s) has more than one label", G_OBJECT_TYPE_NAME (widget));
-          else
-            label = labels->data;
+          label = ptr->data;
+          break;
         }
-      g_list_free (labels);
+      ptr = ptr->next;
     }
+  g_list_free (labels);
 
   /* Ignore a label within a button; bug #136602 */
   if (label && GTK_IS_BUTTON (widget))